/**
 * @Title: ConfigFile.java
 * @Package com.rtmart.txd.barcode
 * @Description: 
 * @author Phoenix 
 * @version V1.0
 */
package com.rtmart.txd.barcode.io;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.swing.JOptionPane;

/**
 * @ClassName: ConfigFile
 * @Description:
 * @author Phoenix
 * @date 2019年6月24日 
 *
 */
public class ConfigFile {
	
	private static String defaultConfigJsonStr="{\"storeNo\":null,\"prtIndex\":0}";
	
	public  ConfigFile () {	
	}
	
	public static File checkExist(String filepath) throws Exception{
		File file=new File(filepath);
		
		if (file.exists()) {//判断文件目录的存在
			System.out.println("文件夹存在！");
			if(file.isFile()){//判断文件的存在性      
				System.out.println("文件存在！");
			}else{
				file.createNewFile();//创建文件
				initConfigFile(file); //初始化文件
				System.out.println("文件不存在，创建文件成功！");
			}
		}else {
			System.out.println("文件夹不存在！");
			File file2=new File(file.getParent());
			System.out.println(file.getParent());
			file2.mkdirs();
			System.out.println("创建文件夹成功！");
			if(file.isFile()){
				System.out.println("文件存在！");
			}else{
				file.createNewFile();//创建文件 
				initConfigFile(file);//初始化文件
				System.out.println("文件不存在，创建文件成功！");
			}
		}
		return file;
	}
	
	public static void initConfigFile(File file) {
		FileWriter write;
		try {
			write = new FileWriter(file);
			write.write("");
			write.write(defaultConfigJsonStr);
			write.flush();
			write.close();
		} catch (IOException e) {
			e.getStackTrace();
		}
	}
	
	public static void saveConfigFile(String filePath,String jsonStr) {
		File file = new File(filePath);
		FileWriter write;
		try {
			write = new FileWriter(file);
			write.write("");
			write.write(jsonStr);
			write.flush();
			write.close();
			JOptionPane.showMessageDialog(null, "设置已保存！");
		} catch (IOException e) {
			e.getStackTrace();
		}
	}
	
	public static void readToBuffer(StringBuffer buffer, String filePath) throws IOException {
        InputStream is = new FileInputStream(filePath);
        String line; // 用来保存每行读取的内容
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        line = reader.readLine(); // 读取第一行
        while (line != null) { // 如果 line 为空说明读完了
            buffer.append(line); // 将读到的内容添加到 buffer 中
            buffer.append("\n"); // 添加换行符
            line = reader.readLine(); // 读取下一行
        }
        reader.close();
        is.close();
    }
	
	public static String readFile(String filePath) throws IOException {
        StringBuffer sb = new StringBuffer();
        ConfigFile.readToBuffer(sb, filePath);
        return sb.toString();
    }
	
}
